22596
15271
A kérdésre adott válaszok közösségi erőfeszítések. A bejegyzés javításához szerkessze a meglévő válaszokat. Jelenleg nem fogad új válaszokat vagy interakciókat.
Hogyan terelhetem át a felhasználót az egyik oldalról a másikra a jQuery vagy a tiszta JavaScript használatával? 
1
2
Következő
Az ember nem egyszerűen átirányítja a jQuery használatát
A jQuery nem szükséges, és a window.location.replace (...) szimulálja a legjobban a HTTP-átirányítást.
Az window.location.replace (...) jobb, mint az window.location.href használata, mert a Replace () nem tartja meg az eredeti oldalt a munkamenet előzményeiben, vagyis a felhasználó nem ragad bele egy soha véget nem érő back- gombfiaskó.
Ha szimulálni akarja, hogy valaki egy linkre kattint, használja a
hely.href
Ha egy HTTP átirányítást szeretne szimulálni, használja a location.replace fájlt
Például:
// hasonló viselkedés, mint egy HTTP átirányítás
window.location.replace ("http://stackoverflow.com");
// hasonló viselkedés, mint a linkre kattintás
window.location.href = "http://stackoverflow.com";
|
FIGYELEM: Ezt a választ csupán lehetséges megoldásként adták meg; nyilvánvalóan nem ez a legjobb megoldás, mivel ehhez jQuery szükséges. Ehelyett inkább a tiszta JavaScript megoldást részesítse előnyben.
$ (hely) .attr ('href', 'http://stackoverflow.com')
|
Az oldal átirányításának szokásos "vanília" JavaScript-módja
window.location.href = 'newPage.html';
Vagy egyszerűbben: (mivel az ablak globális)
location.href = 'newPage.html';
Ha azért van itt, mert az átirányításkor elveszíti a HTTP_REFERER fájlt, olvassa tovább:
(Egyébként hagyja figyelmen kívül ezt az utolsó részt)
A következő szakasz azoknak szól, akik a HTTP_REFERER-t használják a sok biztonsági intézkedés egyikeként (bár ez nem egy nagyszerű védelmi intézkedés). Az Internet Explorer 8 vagy annál régebbi verziójának használata esetén ezek a változók elvesznek, ha bármilyen JavaScript-oldal-átirányítást használnak (location.href stb.).
Az alábbiakban egy alternatívát fogunk bevezetni az IE8 és újabb verziókra, hogy ne veszítsük el a HTTP_REFERER fájlt. Ellenkező esetben szinte mindig egyszerűen használhatja az window.location.href fájlt.
A HTTP_REFERER (URL beillesztés, munkamenet stb.) Tesztelése segíthet megmondani, hogy egy kérés jogos-e.
(Megjegyzés: a hivatkozók hivatkozásának megkerülésére / elcsalására is van mód, amint azt a droop linkje megjegyzi)
Egyszerű, böngészőkön átívelő tesztelési megoldás (az window.location.href verzió az Internet Explorer 9+ és minden más böngészőhöz)
Használat: redirect ('anotherpage.aspx');
function redirect (url) {
var ua = navigator.userAgent.toLowerCase (),
isIE = ua.indexOf ('msie')! == -1,
verzió = parseInt (ua.substr (4, 2), 10);
// Internet Explorer 8 és újabb
if (isIE && verzió <9) {
var link = document.createElement ('a');
link.href = url;
document.body.appendChild (link);
link.click ();
}
// Az összes többi böngésző használhatja a szokásos window.location.href fájlt (nem veszítik el a HTTP_REFERER fájlt, mint az Internet Explorer 8 és újabb verziók)
más {
window.location.href = url;
}
}
|
Ennek rengeteg módja van.
// ablak.hely
window.location.replace ('http://www.example.com')
window.location.assign ('http://www.example.com')
window.location.href = 'http://www.example.com'
document.location.href = '/ elérési út'
// ablak.történet
window.history.back ()
window.history.go (-1)
// ablak.navigate; CSAK az Internet Explorer régi verzióihoz
window.navigate ('top.jsp')
// Valószínűleg nincs bueno
self.location = 'http://www.example.com';
top.location = 'http://www.example.com';
// jQuery
$ (hely) .attr ('href', 'http: //www.example.com')
$ (ablak) .attr ('hely', 'http: //www.example.com')
$ (hely) .prop ('href', 'http://www.example.com')
|
Ez minden böngészőnél működik:
window.location.href = 'your_url';
|
Segítene, ha egy kicsit leíróbb lenne abban, amit próbál. Ha lapozott adatokat akar létrehozni, akkor ennek lehetősége van néhány lehetőségre. Minden oldalhoz külön linkeket generálhat, amelyekhez közvetlenül el akar jutni.
 1 
 2 
 3 
...
Ne feledje, hogy a példa aktuális oldalát a kód és a CSS másképp kezeli.
Ha azt akarja, hogy az átlapolt adatokat az AJAX-on keresztül változtassa meg, akkor itt jönne be a jQuery. Ha azt tenne, hogy egy kattintáskezelőt adna az egyes horgonycímkékhez, amelyek egy másik oldalnak felelnek meg. Ez a kattintáskezelő meghívna néhány jQuery-kódot, amely az AJAX-on keresztül beolvassa a következő oldalt és frissíti a táblázatot az új adatokkal. Az alábbi példa feltételezi, hogy van egy webszolgáltatása, amely visszaadja az új oldaladatokat.
$ (dokumentum) .ready (függvény () {
$ ('a.pager-link'). kattintson (function () {
var oldal = $ (this) .attr ('href'). split (/ \? /) [1];
$ .ajax ({
típus: 'POST',
url: '/ elérési út a szolgáltatáshoz',
adatok: oldal,
siker: függvény (tartalom) {
$ ('# myTable'). html (tartalom); // csere
}
});
return false; // a link leállításához
});
});
|
Úgy gondolom, hogy a location.replace (URL) is a legjobb módszer, de ha értesíteni szeretné a keresőket az átirányításról (nem elemzik a JavaScript kódot az átirányítás megtekintéséhez), vegye fel a rel = "canonical" metát címkét a webhelyére.
Noscript szakasz hozzáadása HTML frissítő metacímkével szintén jó megoldás. Javaslom, hogy használja ezt a JavaScript átirányítási eszközthozzon létre átirányításokat. Internet Explorer támogatással is rendelkezik a HTTP hivatkozó átadásához.
A mintakód késedelem nélkül így néz ki:

 licenc alatt áll





  

 címre esik

|
De ha valaki vissza akar irányítani a kezdőlapra, akkor a következő részletet használhatja.
window.location = window.location.host
Hasznos lenne, ha három különböző környezete van, mint fejlesztés, stádiumozás és gyártás.
Felfedezheti ezt az ablakot vagy window.location objektumot, ha ezeket a szavakat csak a Chrome konzolba vagy a Firebug konzoljába teszi.
|
A JavaScript számos módszert kínál a böngésző címsorában megjelenő jelenlegi URL letöltésére és megváltoztatására. Mindezek a módszerek a Location objektumot használják, amely a Window objektum tulajdonsága. Az alábbiak szerint hozhat létre egy új Hely objektumot, amelynek jelenlegi URL-je van.
var currentLocation = ablak.location;
Az URL alapstruktúrája
//:/ 
Protokoll - Meghatározza a protokoll nevét, amelyet az interneten lévő erőforrás eléréséhez kell használni. (HTTP (SSL nélkül) vagy HTTPS (SSL nélkül))
hosztnév - A hosztnév megadja az erőforrást birtokló hosztot. Például: www.stackoverflow.com. A szerver a gazdagép nevét felhasználva nyújt szolgáltatásokat.
port - egy portszám, amely egy adott folyamat felismerésére szolgál, amelyre az internetet vagy más hálózati üzenetet továbbítani kell, amikor az kiszolgálóhoz érkezik.
elérési út - Az elérési út információt ad a gazdagépen belüli erőforrásról, amelyhez a webes ügyfél hozzáférni akar. Például a stackoverflow.com/index.html.
lekérdezés - A lekérdezési karaktersorozat követi az elérési út összetevőt, és információt nyújt, amelyet az erőforrás valamilyen célra felhasználhat (például keresési paraméterként vagy feldolgozandó adatként).
hash - Az URL horgonyrésze tartalmazza a kivonatjelet (#).
Ezekkel a Helyobjektum tulajdonságokkal elérheti ezeket az URL-összetevőket
hash - Beállítja vagy visszaadja az URL horgony részét.
host -Setek
vagy visszaadja az URL gazdagépnevét és portját.
hosztnév -Set vagy
egy URL gazdagépnevét adja vissza.
href - Beállítja vagy visszaadja az egészet
URL.
elérési út - Beállítja vagy visszaadja az URL elérési útját.
port - Beállítja vagy visszaadja a kiszolgáló által az URL-hez használt portszámot.
protokoll - Beállítja vagy visszaadja az URL protokollját.
keresés -Készletek
vagy egy URL lekérdezési részét adja vissza
Most Ha módosítani szeretne egy oldalt, vagy át akarja irányítani a felhasználót egy másik oldalra, akkor a Hely objektum href tulajdonságát használhatja
Használhatja a Location objektum href tulajdonságát.
window.location.href = "http://www.stackoverflow.com";
A Location Object szintén rendelkezik ezzel a három módszerrel
hozzárendelés () - Új dokumentum betöltése.
reload () - Az aktuális dokumentum újratöltése.
csere () - Az aktuális dokumentumot lecseréli egy újra
A hozzárendelés () és a metódusok használatával átirányíthat más ilyen oldalakra is
hely.megosztás ("http://www.stackoverflow.com");
location.replace ("http://www.stackoverflow.com");
Hogyan különbözik a hozzárendelés () és a helyettesítés () különbség - A csere () és a hozzárendelés () módszer () közötti különbség az, hogy a csere () eltávolítja az aktuális dokumentum URL-jét a dokumentumelőzményekből, ami azt jelenti, hogy nem lehet a "vissza" gombra az eredeti dokumentumhoz való visszatéréshez. Tehát használja a assign () metódust, ha új dokumentumot szeretne betölteni, és meg szeretné adni a lehetőséget, hogy visszalépjen az eredeti dokumentumhoz.
Megváltoztathatja a href helyobjektum tulajdonságot a jQuery szintén ehhez hasonló használatával
$ (hely) .attr ('href', url);
Ezért átirányíthatja a felhasználót egy másik URL-re.
|
A jQuery alapvetően csak egy JavaScript keretrendszer, és néhány olyan dolog elvégzéséhez, mint ebben az esetben az átirányítás, csak tiszta JavaScriptet használhat, így ebben az esetben 3 lehetőség van vaníliaJavaScript:
1) A helycsere használatával ez helyettesíti az oldal jelenlegi történetét, ami azt jelenti, hogy a Vissza gombbal nem lehet visszatérni az eredeti oldalra.
window.location.replace ("http://stackoverflow.com");
2) A hely hozzárendelésével ez megőrzi az előzményeket, és a Vissza gomb használatával visszatérhet az eredeti oldalra:
window.location.assign ("http://stackoverflow.com");
3) Javaslom az előző módszerek egyikét, de ez lehet a harmadik lehetőség a tiszta JavaScript használatával:
window.location.href = "http://stackoverflow.com";
A jQuery-be is írhat egy függvényt a kezelésére, de nem ajánlott, mivel ez csak egy sor tiszta JavaScript-függvény, emellett az összes fenti függvényt ablak nélkül is használhatja, ha már az ablak hatókörében van, például window.location.replace ("http://stackoverflow.com"); lehet a location.replace ("http://stackoverflow.com");
Ezenkívül megmutatom mindet az alábbi képen:
|
Csak a window.location használatával kell beállítani.
Példa:
window.location = "https://stackoverflow.com/";
Itt van egy korábbi bejegyzés a témáról: Hogyan lehet átirányítani egy másik weboldalra?
|
Mielőtt elkezdeném, a jQuery egy JavaScript könyvtár, amelyet DOM-manipulációra használnak. Tehát nem szabad a jQuery-t használni az oldal átirányításához.
Idézet a Jquery.com-tól:
Míg a jQuery nagyobb problémák nélkül futtatható a régebbi böngészőverziókban,
nem teszteljük aktívan a jQuery-t bennük, és általában nem javítjuk a hibákat
ami megjelenhet bennük.
Itt találták:
https://jquery.com/browser-support/
Tehát a jQuery nem minden vége és megoldása a visszamenőleges kompatibilitásnak.
A következő nyers JavaScriptet használó megoldás minden böngészőben működik, és hosszú ideje szabványos, így nincs szükség könyvtárakra a böngészők közötti támogatáshoz.
Ez az oldal 3000 milliszekundum után átirányítja a Google-hoz



 példa 


Hamarosan átirányítják a Google-ra.

A különböző lehetőségek a következők: window.location.href = "url"; // Szimulálja a normál navigációt egy új oldalra window.location.replace ("url"); // Eltávolítja az aktuális URL-t az előzményekből, és új URL-re cseréli window.location.assign ("url"); // Új URL-t ad hozzá az előzmények vereméhez és átirányítja az új URL-hez window.history.back (); // Vissza gombra kattintást szimulál window.history.go (-1); // Vissza gombra kattintást szimulál window.history.back (-1); // Vissza gombra kattintást szimulál window.navigate ("page.html"); // Ugyanaz, mint az window.location = "url" A csere használata esetén a Vissza gomb nem fog visszatérni az átirányítási oldalra, mintha soha nem lett volna az előzmények között. Ha azt szeretné, hogy a felhasználó visszatérhessen az átirányítási oldalra, akkor használja az window.location.href vagy window.location.assign alkalmazást. Ha mégis használ egy olyan opciót, amely lehetővé teszi a felhasználó számára, hogy visszatérjen az átirányítási oldalra, ne feledje, hogy amikor belép az átirányítási oldalra, akkor vissza fog irányítani. Tehát ezt vegye figyelembe, amikor az átirányítás opcióját választja. Olyan körülmények között, amikor az oldal csak akkor irányít át, amikor a felhasználó valamilyen műveletet hajt végre, rendben lesz, ha az oldal szerepel a Vissza gomb előzményekben. De ha az oldal automatikusan átirányít, akkor a cserét kell használnia, hogy a felhasználó a Vissza gombot használhassa anélkül, hogy vissza kellene kényszerülnie az átirányítás által küldött oldalra. Metaadatokkal is futtathatja az oldalátirányítást az alábbiak szerint. META Frissítés META Hely BASE eltérítés Ezen a lapon számos további módszer található a gyanútlan kliens átirányítására egy olyan oldalra, amelyre esetleg nem kívánnak eljutni (egyik sem a jQuery-re támaszkodik): https://code.google.com/p/html5security/wiki/RedirectionMethods Arra is szeretnék rámutatni, hogy az emberek nem szeretik, ha véletlenszerűen irányítják át őket. Csak akkor irányítsa át az embereket, ha feltétlenül szükséges. Ha véletlenszerűen kezdi el átirányítani az embereket, soha többé nem fognak az Ön webhelyére lépni. A következő bekezdés hipotetikus: Előfordulhat, hogy rosszindulatú webhelyként is bejelentik. Ha ez megtörténik, amikor az emberek rákattintanak egy linkre az Ön webhelyére, a felhasználói böngésző figyelmeztetheti őket arra, hogy a webhelye rosszindulatú. Az is előfordulhat, hogy a keresőmotorok elkezdenek esni az értékelésből, ha az emberek rossz élményről számolnak be webhelyén. Kérjük, olvassa el a Google Webmester irányelveit az átirányításokkal kapcsolatban: https://support.google.com/webmasters/answer/2721217?hl=hu&ref_topic=6001971 Itt van egy szórakoztató kis oldal, amely kikerül az oldalból. Menj el

Menj el

Ha összekapcsolja a két oldalas példát, akkor egy csecsemőhurokkal lehetne ezt átirányítanigarantálja, hogy a felhasználó soha többé nem akarja használni a webhelyét. | var url = 'asdf.html'; window.location.href = url; | Megteheti ezt a jQuery nélkül, mint: window.location = "http://sajatdomain.com"; És ha csak a jQuery-t akarja, akkor ezt megteheti: $ jq (ablak) .attr ("hely", "http://sajatdomain.com"); | Ez a jQuery-vel működik: $ (ablak) .attr ("hely", "http://google.fr"); | # HTML oldal átirányítás a jQuery / JavaScript módszerrel Próbálja ki ezt a példakódot: függvény YourJavaScriptFunction () { var i = $ ('# login'). val (); if (i == 'bejelentkezés') window.location = "Login.php"; más window.location = "Kijelentkezés.php"; } Ha teljes URL-t szeretne megadni window.location = "www.google.co.in"; néven. | Eredeti kérdés: "Hogyan lehet átirányítani a jQuery használatával?", Ezért a válasz végrehajtja a jQuery >> Ingyenes használati esetet. Csak átirányítás egy JavaScript-es oldalra: window.location.href = "/ contact /"; Vagy ha késésre van szüksége: setTimeout (function () { window.location.href = "/ contact /"; , 2000); // Idő milliszekundumban A jQuery lehetővé teszi, hogy könnyedén válasszon elemeket egy weboldalról. Bármit megtalálhat egy oldalon, majd a jQuery segítségével speciális effektusokat adhat hozzá, reagálhat a felhasználói műveletekre, vagy tartalmat jeleníthet meg és elrejthet a kiválasztott elemen belül vagy kívül. Mindezek a feladatok azzal kezdődnek, hogy tudjuk, hogyan válasszunk ki egy elemet vagy eseményt. $ ('a, img'). on ('kattintás', függvény (e) { e.preventDefault (); $ (this) .anim ({ átlátszatlanság: 0 // Tegyen ide néhány CSS-animációt 500); setTimeout (function () { // OK, kész jQuery személyzet, menjünk átirányítani window.location.href = "/ contact /"; 500); }); Képzelje el, hogy valaki írt egy szkriptet / plugint 10000 sornyi kóddal. A jQuery segítségével ehhez a kódhoz csak egy-két sorral csatlakozhat. | Ezt a sort be kell írnia a kódjába: $ (hely) .attr ("href", "http://stackoverflow.com"); Ha nem rendelkezik jQuery-vel, akkor menjen a JavaScript használatával: window.location.replace ("http://stackoverflow.com"); window.location.href ("http://stackoverflow.com"); | Tehát a kérdés az, hogyan lehet átirányítani egy oldalt, és nem az, hogy hogyan lehet átirányítani egy webhelyre? Ehhez csak JavaScript-t kell használnia. Íme néhány apró kód, amely dinamikus átirányítási oldalt hoz létre. Tehát mondjuk, hogy ezt a kódrészletet csak egy átirányítási / index.html fájlba helyezte a webhelyén, és így használhatja. http://www.mywebhely.com/redirect?url=http://stackoverflow.com És ha erre a linkre megy, az automatikusan átirányít a stackoverflow.com webhelyre. Link a dokumentációhoz És így készít egy egyszerű átirányító oldalt JavaScript-sel Szerkesztés: Egy dolgot is meg kell jegyezni. Hozzáadtam a window.location.replace-t a kódomhoz, mert úgy gondolom, hogy ez megfelel egy átirányítási oldalnak, de tudnia kell, hogy az window.location.replace használatakor átirányításra kerül, amikor a böngészőben a Vissza gombot megnyomja visszatért az átirányítási oldalra, és visszatér az előtte lévő oldalra, nézze meg ezt a kis bemutatót. Példa: A folyamat: store home => átirányítja az oldalt a google => google oldalra Amikor a google-nél van: google => Vissza gomb a böngészőben => store home Tehát, ha ez megfelel az Ön igényeinek, akkor minden rendben van. Ha az átirányítási oldalt fel szeretné venni a böngésző előzményeibe, cserélje ki ezt if (url) ablak.location.replace (url); val vel if (url) ablak.location.href = url; | A kattintási funkción csak adja hozzá: window.location.href = "Az URL, ahová át akarja irányítani"; $ ('# id'). click (function () { window.location.href = "http://www.google.com"; }); | Próbáld ezt: hely. hozzárendelés ("http://www.google.com"); Példa kódrészlet. | jQuery nem szükséges. Meg tudod csinálni: window.open ("URL", "_ self", "", "") Ez ilyen egyszerű! A HTTP-kérés kezdeményezésének legjobb módja a document.loacation.href.replace ('URL'). | Először írj rendesen. Egy alkalmazásban szeretne navigálni egy másik hivatkozáshoz az alkalmazásból egy másik hivatkozáshoz. Itt van a kód: window.location.href = "http://www.google.com"; És ha az alkalmazáson belül szeretne navigálni, akkor nekem is van kódom, ha akarja. | A jQuery-ben így lehet átirányítani: $ (hely) .attr ('href', 'http://yourPage.com/'); | JavaScript használata: 1. módszer: window.location.href = "http://google.com"; 2. módszer: window.location.replace ("http://google.com"); A jQuery használata: 1. módszer: $ (hely) $ (hely) .attr ('href', 'http://google.com'); 2. módszer: Újrafelhasználható funkció jQuery.fn.redirectTo = function (url) { window.location.href = url; } jQuery (ablak) .redirectTo ("http://google.com"); | A JavaScript-ben és a jQuery-ben a következő kód segítségével tudjuk átirányítani az egyik oldalt egy másik oldalra: window.location.href = "http://google.com"; window.location.replace ("page1.html"); | ECMAScript 6 + jQuery, 85 bájt $ ({jQueryCode: (url) => location.replace (url)}). attr ("jQueryCode") ("http://example.com") Kérlek ne öljén, ez egy vicc. Ez egy vicc. Ez egy vicc. Ez "választ adott a kérdésre", abban az értelemben, hogy "a jQuery használatával" megoldást kért, amely ebben az esetben valamilyen módon az egyenletbe kényszeríti. Ferrybignek nyilvánvalóan szüksége van a vicc magyarázatára (még mindig viccelek, biztos vagyok benne, hogy az áttekintő űrlapon korlátozott lehetőségek vannak), így minden további nélkül: Más válaszok a jQuery attr () használatát használják feleslegesen a hely vagy ablak objektumain. Ez a válasz visszaél is vele, de nevetségesebb módon. Ahelyett, hogy a helyet beállítaná, az attr () segítségével lekéri a helyet beállító funkciót. A függvény neve jQueryCode, annak ellenére, hogy nincs benne semmi jQuery, és a function valaminek a meghívása egyszerűen szörnyű, különösen, ha a valami nem is nyelv. A "85 bájt" a Code Golfra utal. A golfozás nyilvánvalóan nem olyan, amit a kódgolfon kívül kellene tennie, ráadásul ez a válasz nyilvánvalóan nem golfozott. Alapvetően görcsöl. | Javascript: window.location.href = 'www.sajat_url.com'; window.top.location.href = 'www.sajat_url.com'; window.location.replace ('www.your_url.com'); Jquery: var url = 'www.your_url.com'; $ (hely) .attr ('href', url); $ (hely) .prop ('href', url); // a hely helyett használhatja az ablakot | Itt van egy késleltetett átirányítás. A késleltetési időt bármire beállíthatja: A dokumentum címe
8 másodpercen belül átirányítjuk!
| Ennek három fő módja van, window.location.href = 'blaah.com'; window.location.assign ('blaah.com'); és... window.location.replace ('blaah.com'); Az utolsó a legjobb a hagyományos átirányításhoz, mert ez nem menti el azt az oldalt, amelyre ment, mielőtt átirányította volna a keresési előzményekben. Ha azonban csak egy lapot szeretne megnyitni JavaScript-sel, akkor a fentiek bármelyikét használhatja SZERKESZTÉS: Az ablak előtag nem kötelező. | 1 2 Következő Nem a keresett válasz? Böngésszen a javascript jquery redirect címkével ellátott többi kérdésben, vagy tegye fel saját kérdését.